home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / zhpgv.z / zhpgv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. ZZZZHHHHPPPPGGGGVVVV((((3333FFFF))))                                                            ZZZZHHHHPPPPGGGGVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZHPGV - compute all the eigenvalues and, optionally, the eigenvectors of
  10.      a complex generalized Hermitian-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE ZHPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, RWORK,
  15.                        INFO )
  16.  
  17.          CHARACTER     JOBZ, UPLO
  18.  
  19.          INTEGER       INFO, ITYPE, LDZ, N
  20.  
  21.          DOUBLE        PRECISION RWORK( * ), W( * )
  22.  
  23.          COMPLEX*16    AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
  24.  
  25. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  26.      ZHPGV computes all the eigenvalues and, optionally, the eigenvectors of a
  27.      complex generalized Hermitian-definite eigenproblem, of the form
  28.      A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
  29.      are assumed to be Hermitian, stored in packed format, and B is also
  30.      positive definite.
  31.  
  32.  
  33. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  34.      ITYPE   (input) INTEGER
  35.              Specifies the problem type to be solved:
  36.              = 1:  A*x = (lambda)*B*x
  37.              = 2:  A*B*x = (lambda)*x
  38.              = 3:  B*A*x = (lambda)*x
  39.  
  40.      JOBZ    (input) CHARACTER*1
  41.              = 'N':  Compute eigenvalues only;
  42.              = 'V':  Compute eigenvalues and eigenvectors.
  43.  
  44.      UPLO    (input) CHARACTER*1
  45.              = 'U':  Upper triangles of A and B are stored;
  46.              = 'L':  Lower triangles of A and B are stored.
  47.  
  48.      N       (input) INTEGER
  49.              The order of the matrices A and B.  N >= 0.
  50.  
  51.      AP      (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
  52.              On entry, the upper or lower triangle of the Hermitian matrix A,
  53.              packed columnwise in a linear array.  The j-th column of A is
  54.              stored in the array AP as follows:  if UPLO = 'U', AP(i + (j-
  55.              1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2*n-
  56.              j)/2) = A(i,j) for j<=i<=n.
  57.  
  58.              On exit, the contents of AP are destroyed.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZHHHHPPPPGGGGVVVV((((3333FFFF))))                                                            ZZZZHHHHPPPPGGGGVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      BP      (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
  75.              On entry, the upper or lower triangle of the Hermitian matrix B,
  76.              packed columnwise in a linear array.  The j-th column of B is
  77.              stored in the array BP as follows:  if UPLO = 'U', BP(i + (j-
  78.              1)*j/2) = B(i,j) for 1<=i<=j; if UPLO = 'L', BP(i + (j-1)*(2*n-
  79.              j)/2) = B(i,j) for j<=i<=n.
  80.  
  81.              On exit, the triangular factor U or L from the Cholesky
  82.              factorization B = U**H*U or B = L*L**H, in the same storage
  83.              format as B.
  84.  
  85.      W       (output) DOUBLE PRECISION array, dimension (N)
  86.              If INFO = 0, the eigenvalues in ascending order.
  87.  
  88.      Z       (output) COMPLEX*16 array, dimension (LDZ, N)
  89.              If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
  90.              eigenvectors.  The eigenvectors are normalized as follows:  if
  91.              ITYPE = 1 or 2, Z**H*B*Z = I; if ITYPE = 3, Z**H*inv(B)*Z = I.
  92.              If JOBZ = 'N', then Z is not referenced.
  93.  
  94.      LDZ     (input) INTEGER
  95.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  96.              'V', LDZ >= max(1,N).
  97.  
  98.      WORK    (workspace) COMPLEX*16 array, dimension (max(1, 2*N-1))
  99.  
  100.      RWORK   (workspace) DOUBLE PRECISION array, dimension (max(1, 3*N-2))
  101.  
  102.      INFO    (output) INTEGER
  103.              = 0:  successful exit
  104.              < 0:  if INFO = -i, the i-th argument had an illegal value
  105.              > 0:  ZPPTRF or ZHPEV returned an error code:
  106.              <= N:  if INFO = i, ZHPEV failed to converge; i off-diagonal
  107.              elements of an intermediate tridiagonal form did not convergeto
  108.              zero; > N:   if INFO = N + i, for 1 <= i <= n, then the leading
  109.              minor of order i of B is not positive definite.  The
  110.              factorization of B could not be completed and no eigenvalues or
  111.              eigenvectors were computed.
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.